<?php
include_once '../defs/database.php';



class Uitvoeren extends Database {
    
    private $uitvoeren_a;
    private $uitvoeren_b;
    private $uitvoeren_c;
    private $uitvoeren_d;
    private $uitvoeren_e;
    
    public function __construct() {
        parent::__construct();
    }

    public function DbPrestatieHandelingen($id='') {
        parent::Database();
        
        if ( !$this->dbTableExists(TBL_PRESTATIE_HANDELINGEN)){
            if (!$this->createTable(TBL_PRESTATIE_HANDELINGEN)){
                trigger_error(TXT_ERROR_CANT_CREATE_TABLE. TBL_PRESTATIE_HANDELINGEN, E_USER_ERROR);
            } 
            
        }else if ( (strlen($id) > 0 ) && $this->dbCheckId ($id, FIELD_PRESTATIE_ID) ){
            $this->selectById($id);
        }
        
        
    }
    
    public function checkHandelingenLen($value){
        if (trim($value) > LEN_HANDELINGEN){
            return "Too long.";
        } else {
            return TRUE;
        }
    }

    public function save(   $uitvoeren_a, 
                            $uitvoeren_b,
                            $uitvoeren_c,
                            $uitvoeren_d,
                            $uitvoeren_e
                            ){


/**
 * @todo
 * Create database trigger for Id existence
 */
        try{

            $this->checka($uitvoeren_a);
            $this->checkb($uitvoeren_b);
            $this->checkc($uitvoeren_c);
            $this->checkd($uitvoeren_d);
            $this->checke($uitvoeren_e);
            
            //$this->checkNiveau($niveau);

        }

        //catch exception
        catch(Exception $e)
        {
            $this->setError( $e->getMessage() );
            return FALSE;
        }
        
        $query = "INSERT INTO  `".DB_NAME."`.`".TBL_PRESTATIE_HANDELINGEN."` (".
                    "`".FIELD_UITVOEREN_A."` ,".
                    "`".FIELD_UITVOEREN_B."` ,".
                    "`".FIELD_UITVOEREN_C."` ,".
                    "`".FIELD_UITVOEREN_D."` ,".
		    "`".FIELD_UITVOEREN_E."`".
                    ")".
                    "VALUES ('".
                    $this->dbInString($uitvoeren_a). "', '".
                    $this->dbInString($uitvoeren_b). "', '".
                    $this->dbInString($uitvoeren_c). "', '".
                    $this->dbInString($uitvoeren_d). "', '".
                    $this->dbInString($uitvoeren_e). " '".
                    ")";
                
        /** Query **/
        $this->dbquery($query);

        if($this->checkDbErrors($query)){
            return FALSE;
        }
        
        /**  Update class vars **/
        $this->id = $this->dbGetInsertedId();
        
        /** Load class vars **/
        return ($this->selectById($this->id));
        
    }
    
    private function checkUitvoerenA($uitvoeren_a){
        
        $this->checkText($uitvoeren_a, LEN_HANDELINGEN);
    }
    
    private function checkUitvoerenB($uitvoeren_b){
        
        $this->checkText($uitvoeren_b, LEN_HANDELINGEN);
    }
    
    private function checkUitvoerenC($uitvoeren_c){
        
        $this->checkText($uitvoeren_c, LEN_HANDELINGEN);
    }
    
    private function checkUitvoerenD($uitvoeren_d){
        
        $this->checkText($uitvoeren_d, LEN_HANDELINGEN);
    }
    
    private function checkUitvoerenE($uitvoeren_e){
        
        $this->checkText($uitvoeren_e, LEN_HANDELINGEN);
    }
    


    private function selectById( $id ){
        
        if( $this->CheckId($id, FIELD_PRESTATIE_ID)){
            $query = "SELECT ".
                        "`".FIELD_UITVOEREN_A."` ,".
                        "`".FIELD_UITVOEREN_B."` ,".
                        "`".FIELD_UITVOEREN_C."` ,".
                        "`".FIELD_UITVOEREN_D."` ,".
                        "`".FIELD_UITVOEREN_E."`".
                     " FROM  `".TBL_PRESTATIE_HANDELINGEN."`". 
                     " WHERE (`".FIELD_PRESTATIE_ID."` = ". $id .")";
            
            $this->dbQuery($query);
        
            if ( $this->checkDbErrors($query) ){
                return FALSE;
            }
                
            $row = $this->dbFetchArray();
            if ( $this->checkDbErrors($query) ){  
                return FALSE;
            }
            
            $this->uitvoeren_a = $row[FIELD_UITVOEREN_A];
            $this->uitvoeren_b = $row[FIELD_UITVOEREN_B];
            $this->uitvoeren_c = $row[FIELD_UITVOEREN_C];
            $this->uitvoeren_d = $row[FIELD_UITVOEREN_D];
            $this->uitvoeren_e = $row[FIELD_UITVOEREN_E];

            
            if ( strlen($this->id) < 1 ){
                $this->id = $id;
            }

            return TRUE;
        }
            
    }
    
    private function createTable(){
        
        $query = "CREATE TABLE IF NOT EXISTS `".TBL_PRESTATIE_HANDELINGEN."` (".
                  "`".FIELD_PRESTATIE_ID ."` ".FIELD_PRESTATIE_ID."(".LEN_HANDELINGEN_ID.") NOT NULL AUTO_INCREMENT,".
                  "`".FIELD_UITVOEREN_A ."` varchar(".LEN_HANDELINGEN.") NOT NULL,".
                  "`".FIELD_UITVOEREN_B ."` varchar(".LEN_HANDELINGEN.") NOT NULL,".
                  "`".FIELD_UITVOEREN_C ."` varchar(".LEN_HANDELINGEN.") NOT NULL,".
                  "`".FIELD_UITVOEREN_D ."` varchar(".LEN_HANDELINGEN.") NOT NULL,".
                  "`".FIELD_UITVOEREN_E ."` varchar(".LEN_HANDELINGEN.") NOT NULL,".
                  "PRIMARY KEY (`".FIELD_PRESTATIE_ID."`),".
                  "UNIQUE KEY `".FIELD_PRESTATIE_ID."` (`".FIELD_PRESTATIE_ID."`)".
                ") DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";
        
        $this->dbQuery($query);
        
        return ( !$this->checkDbErrors($query) );
    }

}

/*class TestUitvoeren {

    public function TestUitvoeren() {
        $test_uitvoeren = new Uitvoeren();
        
        
       echo "<pre>";
       var_dump($test_uitvoeren);
       echo "</pre>";
    }

}
*/

?>
